package br.com.biblioteca.bean;

import java.util.List;

import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import br.com.biblioteca.interfaces.GerenciadorDeLivro;
import br.com.biblioteca.model.Categoria;
import br.com.biblioteca.model.Livro;

@Stateless
@Remote(GerenciadorDeLivro.class)
public class GerenciadorDeLivroBEAN implements GerenciadorDeLivro {

	@PersistenceContext
	private EntityManager em;
	
	public int adicionarLivro(Livro l) {
		em.persist(l);
		return l.getId();
	}

	@SuppressWarnings("unchecked")
	public List<Livro> getLivros() {
		Query query = em.createQuery("select l from Livro l");
		return query.getResultList();
	}

	
	public Livro getLivro(Livro l) {
		Livro gerenciador = em.find(Livro.class, l.getId());
		return gerenciador;
	}

	
	public void alterarLivro(Livro l) {
		em.merge(l);
	}

	
	public void deletarLivro(Livro l) {
		Livro gerenciador = em.find(Livro.class, l.getId());
		em.remove(gerenciador);
	}

	@SuppressWarnings("unchecked")
	public List<Livro> getLivros(Categoria categoria) {
		Query query = em.createQuery("select l from Livro l where l.categorias.id ="+categoria.getId());
		return query.getResultList();
	}

}
